<?php
/**
 * Description of PresentacionP
 *
 * @author Nelifer
 */
include_once('BDManager.class.php');
require('Inventario.class.php');

class FacturaVenta {
    var $con;
    function FacturaVenta(){
        $this->con=new BDManager();
    }

    function insertar($campos){
        if($this->con->conectar()==true){
            $sql1 = "INSERT INTO facturasventas (cli_id, fve_nro, fve_nrocontrol, fve_estatus, fve_mtosubtotal, fve_mtoimpuesto, fve_mtototal, fve_fechacreacion, fve_horacreacion, usu_id) ".
                    "VALUES('".$campos[0]."', '".$campos[1]."', '".$campos[2]."', '".$campos[3]."', '".$campos[4]."', '".$campos[5]."', '".$campos[6]."', '".$campos[7]."', '".$campos[8]."', '".$campos[9]."')";
            $res1 = mysql_query($sql1);	

            $BD = new BDManager();
            $fveId = $BD->get_current_insert_id("facturasventas");

            $ioc = $campos[10];
            $sql2 = "";

            for ($i = 0, $count = count($ioc); $i < $count; $i++) {
                if ($ioc[$i][4]==1||$ioc[$i][4]==2){
                    $sql2 = $sql2 .  "('".$ioc[$i][1]."', '".$fveId."', '".$ioc[$i][2]."', '1'), ";
                }
                
            }
            $sql2 =  "INSERT INTO itemsfacturasventas (pte_id, fve_id, ifv_cantordenada, imp_id) VALUES " . $sql2;
            $sql2 = substr($sql2, 0, (strlen($sql2)-2) )  . ";";

            echo "SQL2: $sql2";
            $res2 = mysql_query($sql2);	
            return ($res1 && $res2) ? true : false;
			
        }
    }

    function actualizarOrdenFactura($campos){
        if($this->con->conectar()==true){
            //$res1 = false;
            $ioc = $campos[1];
			//print_r($ioc );
            $sqlInsert = "";
            $sqlUpdate = "";			
            $sqlDelIds = "";			
            $sqlDelete = "";
			
            for ($i = 0, $count = count($ioc); $i < $count; $i++) {
				
                if ($ioc[$i][4]==1 && $ioc[$i][5]==0){ //Insertar
                    $sqlInsert = $sqlInsert .  "('".$ioc[$i][1]."', '".$campos[0]."', '".$ioc[$i][2]."'), ";
                }else if($ioc[$i][4]==2){ //Modificar
                    $sqlUpdate = "UPDATE itemsfacturasventas SET pte_id = '".$ioc[$i][1]."', ifv_cantordenada = '".$ioc[$i][2]."' WHERE ifv_id = '".$ioc[$i][5]."';" ;
                    //echo $sqlUpdate;
                    $res1 = mysql_query($sqlUpdate);
                }else if ($ioc[$i][4]==3){ //Elimianr
                    $sqlDelIds = $sqlDelIds . $ioc[$i][5]. ",";
                }
            }
            if (strlen($sqlInsert) > 0 ){
                $sqlInsert = "INSERT INTO itemsfacturasventas (pte_id, fve_id, ifv_cantordenada) VALUES " . $sqlInsert;
				$sqlInsert = substr($sqlInsert, 0, (strlen($sqlInsert)-2) )  . ";";                    
                $res2 = mysql_query($sqlInsert);	
            }
            if (strlen($sqlUpdate) > 0){
                //$res1 = 	
            }
            if (strlen($sqlDelIds) > 0){
                $sqlDelIds = substr($sqlDelIds, 0, (strlen($sqlDelIds)-1) )  ;      
				            
                $sqlDelete = "DELETE FROM itemsfacturasventas WHERE ifv_id IN (". $sqlDelIds." ) "; 
				//echo $sqlDelete;   
                $res3 = mysql_query($sqlDelete);
            }
          
            return true;
        }		
    }
    function crearFacturaVenta($campos){
        if($this->con->conectar()==true){
            //$res1 = false;
            $ioc = $campos[7];
                            //print_r($ioc );
            $sqlInsert = "";
            $sqlUpdate = "";			
            $sqlDelIds = "";			
            $sqlDelete = "";
            $fveSubtotal = 0;
            $fveimpuesto = 0;
            $fvetotal = 0;
            for ($i = 0, $count = count($ioc); $i < $count; $i++) {
		if($ioc[$i][6]==12){
                    $impId = 1;
                }else if($ioc[$i][6]==8){
                    $impId = 2;
                }else if($ioc[$i][6]==19){
                    $impId = 3;
                }else{
                    $impId = 4;
                }
                $ifvSubtotal = ($ioc[$i][2] * $ioc[$i][1]);
                $ifvImpuesto = ($ifvSubtotal * ($ioc[$i][6]/100));
                $ifvTotal = $ifvSubtotal + $ifvImpuesto ;
                
                $fveSubtotal = $fveSubtotal + $ifvSubtotal;
                $fveimpuesto = $fveimpuesto + $ifvImpuesto;
                $fvetotal = $fvetotal + $ifvTotal;
                
                $sqlUpdate = "UPDATE itemsfacturasventas SET ifv_cant = '".$ioc[$i][2]."', ifv_mtosubtotal = '".$this->round_($ifvSubtotal)."', ".
                        "ifv_mtoimpuesto = '".$this->round_($ifvImpuesto)."', ifv_mtototal = '".$this->round_($ifvTotal)."', imp_id = '".$impId."' " .
                        "WHERE ifv_id = '".$ioc[$i][5]."';" ;
                $res1 = mysql_query($sqlUpdate);
                
                $obj = new Inventario();
                $invId = $obj->insertarInventario(2, $ioc[$i][1], $ioc[$i][2]*-1);
                //echo "Id: $invId";
                if($invId != -1){
                    $res1 = $obj->insertarRegistroInv($invId, $ioc[$i][2]*-1, $campos[9], $campos[10], $campos[11]);
                }
                
            }
            
            $sqlU = "UPDATE facturasventas SET fve_nro = '".$campos[1]."', fve_nrocontrol = '".$campos[2]."' , fve_mtosubtotal = '".$this->round_($fveSubtotal)."', " .
                         "fve_mtototal = '".$this->round_($fvetotal)."', fve_mtoimpuesto = '".$this->round_($fveimpuesto)."',fve_ciudad = '".$campos[3]."', fve_tiempoviaje = '".$campos[4]."', ".
                         "fve_holgura = '".$campos[5]."', fve_tiempoentrega = '".$campos[6]."' ".
                         "WHERE fve_id = '".$campos[8]."';" ;
            mysql_query($sqlU);
            
            

          
            return true;
        }		
    }
    function round_($valor) {
        $float_redondeado=round($valor * 100) / 100;
        return $float_redondeado;
    }
    public function getConsulta($id){
        if($this->con->conectar()==true){
            $sql = "SELECT cli.cli_id, cli.cli_razonsocial, fve.fve_id, fve.fve_nro, cli.cli_rif, ".
                "cli.cli_direccion, cli.cli_tlfoficina ".
                "FROM facturasventas fve ".
                "INNER JOIN clientes cli on cli.cli_id = fve.cli_id ".
                "WHERE fve.fve_id=$id";
            return mysql_query($sql);
        }
    }
    public function getConsultaOrdenFactura($id){
        if($this->con->conectar()==true){
        $sql = "SELECT cli.cli_id, cli.cli_razonsocial, fve.fve_id, fve.fve_nro, cli.cli_rif, ".
                "cli.cli_direccion, cli.cli_tlfoficina ".
                "FROM facturasventas fve ".
                "INNER JOIN clientes cli on cli.cli_id = fve.cli_id ".
                "WHERE fve.fve_id=$id";
            return mysql_query($sql);
        }
    }
    function getConsultas(){
        if($this->con->conectar()==true){
            return mysql_query("SELECT pre_id, pre_nombre, pre_unidad FROM presentacionesproductos ORDER BY pre_id DESC");
        }
    }

    function eliminar($id){
        if($this->con->conectar()==true){
                return mysql_query("DELETE FROM facturasventas WHERE fve_id=".$id);
        }
    }
    private function countRec($fname,$tname,$where) {
        $con = null;
        $sql = "SELECT count($fname) FROM $tname $where";
        if($this->con->conectar()==true){
            $con = $this->con->conectar();
            $result = mysql_query($sql);
        }
        while ($row = mysql_fetch_array($result)) {
            return $row[0];
        }
    }
    
    public function consultar_grid($page=null, $rp=null, $sortname=null, $sortorder=null, $query=null, $letter_pressed=null, $qtype=null, $tipoProducto=null){
        if (!$sortname) $sortname = 'name';
        if (!$sortorder) $sortorder = 'desc';
        if($query!=''){
             $where = "WHERE `".$qtype."` LIKE '%".$query."%' ";
        } else {
            $where ='';
        }
        if($letter_pressed!=''){
            $where = "WHERE `".$qtype."` LIKE '".$letter_pressed."%' ";	
        }
        if($letter_pressed=='#'){
            $where = "WHERE `".$qtype."` REGEXP '[[:digit:]]' ";
        }
        $sort = "ORDER BY $sortname $sortorder";

        if (!$page) $page = 1;
        if (!$rp) $rp = 10;
        $start = (($page-1) * $rp);
        $limit = "LIMIT $start, $rp";
        if($tipoProducto==1){
            $sql = "SELECT odc.odc_id, odc.odc_codigo, pro.pro_razonsocial, odc.odc_fechacreacion, ".
                          "CONCAT(usu.usu_nombre, ' '  ,usu.usu_apellido) usu_nombre  ".
                    "FROM ordenescompras odc ".
                          "INNER JOIN proveedores pro on pro.pro_id = odc.pro_id ".
                          "INNER JOIN usuarios usu on usu.usu_id = odc.usu_id $where $sort $limit";
            $total = $this->countRec('odc_id','ordenescompras',$where);
            
        }else if($tipoProducto==2){
            $sql = "SELECT fve.fve_id, fve.fve_nro, cli.cli_razonsocial, fve.fve_fechacreacion, ".
                          "CONCAT(usu.usu_nombre, ' '  ,usu.usu_apellido) usu_nombre  ".
                    "FROM facturasventas fve ".
                          "INNER JOIN clientes cli on cli.cli_id = fve.cli_id ".
                          "INNER JOIN usuarios usu on usu.usu_id = fve.usu_id $where $sort $limit";
            $total = $this->countRec('fve_id','facturasventas',$where);
        }


        $con = $this->con->conectar();
        $result = mysql_query($sql);
        //$this->con->close($con); OJO CERRAR CONEXIONES

        // Return JSON data
        $data = array();
        $data['page'] = $page;
        $data['total'] = $total;
        $data['rows'] = array();
        if($tipoProducto == 1){
            while ($row = mysql_fetch_assoc($result)) {
                $data['rows'][] = array(
                'id' => $row['odc_id'],
                'cell' => array($row['odc_id'], $row['odc_codigo'], $row['pro_razonsocial'], $row['odc_fechacreacion'],
                                $row['usu_nombre'])
                );
            }            
        }else if($tipoProducto==2){
            while ($row = mysql_fetch_assoc($result)) {
                $data['rows'][] = array(
                'id' => $row['fve_id'],
                'cell' => array($row['fve_id'], $row['fve_nro'], $row['cli_razonsocial'], $row['fve_fechacreacion'],
                                $row['usu_nombre'])
                );
            }

        }

        echo json_encode($data);
    }
    public function getConsultaJson( $odcId = null ){
        $result = $this->getConsulta($odcId);

        $row_array   = array();
        while ($row = mysql_fetch_assoc($result)) {
            $row_array['id']     = $row['pro_id'];
            $row_array['cirif']  = $row['pro_cirif'];
            $row_array['razonS'] = $row['pro_razonsocial'];
            $row_array['direcF'] = $row['pro_direccion'];
            $row_array['tlfOfi'] = $row['pro_tlfoficina'];
            $row_array['odcCod'] = $row['odc_codigo'];
        }
        return $row_array;
        
    }

    public function getOrdenFactura($cliId = null, $fveId = null){
        $data   = array();
       
        $obj    = new Cliente();
        $aOdc   = $obj->getArrayCliente($cliId);

        if($this->con->conectar()==true){
            $sql = "SELECT ifv.ifv_id, ifv.ifv_cantordenada, pte.pte_id, pte.pte_codigo, pte.pte_nombre, pte_preciounitario, ".
                           "ifv_cant, imp.imp_tasa, fve.fve_id, fve.fve_nro, fve.fve_nrocontrol, fve.fve_ciudad, ".
                           "fve.fve_tiempoviaje, fve.fve_holgura, fve.fve_tiempoentrega ".
                    "FROM itemsfacturasventas ifv  ".
                        "INNER JOIN facturasventas fve on fve.fve_id = ifv.fve_id ".
                        "INNER JOIN productosterminados pte on pte.pte_id = ifv.pte_id ".
                        "INNER JOIN impuestos imp ON imp.imp_id = ifv.imp_id " .
                    "WHERE fve.fve_id=$fveId";
            //echo "SQL: $sql";
            $result =  mysql_query($sql);
            while ($row = mysql_fetch_assoc($result)) {
                $row_array['fve_id']            = $row['fve_id'];
                $row_array['fve_nro']           = $row['fve_nro'];
                $row_array['fve_nrocontrol']    = $row['fve_nrocontrol'];
                $row_array['fve_ciudad']        = $row['fve_ciudad'];
                $row_array['fve_tiempoviaje']   = $row['fve_tiempoviaje'];
                $row_array['fve_holgura']       = $row['fve_holgura'];
                $row_array['fve_tiempoentrega'] = $row['fve_tiempoentrega'];
                
                $row_array['ifv_id']            = $row['ifv_id'];
                $row_array['ifv_cantordenada']  = $row['ifv_cantordenada'];
                $row_array['ifv_cant']          = $row['ifv_cant'];
                $row_array['imp_tasa']          = $row['imp_tasa'];
                $row_array['pte_preciounitario']= $row['pte_preciounitario'];
                $row_array['pte_id']            = $row['pte_id'];
                $row_array['pte_codigo']        = $row['pte_codigo'];
                $row_array['pte_nombre']        = $row['pte_nombre'];
                array_push($data,$row_array);
            }
        }
        $a = array();
        array_push($a, $aOdc);
        array_push($a, $data);
        //print_r($a);
        echo json_encode($a);
    }    
  
}

?>
